/*
package com.back.controller.rocketmqDemo;

import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;

@Service
@RocketMQMessageListener(
        topic = "TopicTest", // 订阅的Topic
        consumerGroup = "my-consumer-group", // 消费者组名，需唯一
        selectorExpression = "TagA || TagB" // Tag过滤表达式，可选，默认为 *（所有Tag）
        // consumeMode = ConsumeMode.CONCURRENTLY, // 消费模式: CONCURRENTLY(并发), ORDERLY(顺序)
        // messageModel = MessageModel.CLUSTERING // 消息模式: CLUSTERING(集群), BROADCASTING(广播)
        // consumeThreadMax = 20, // 最大消费线程数，可选
        // consumeTimeout = 15L, // 消费超时时间（分钟），可选
        // 还可以配置其他参数，如重试次数等
)
public class C implements RocketMQListener<String> {

    @Override
    public void onMessage(String s) {
        // 3. 在这里编写业务处理逻辑
        System.out.println("收到消息: " + s);

        try {
            // 模拟业务处理，例如：
            // - 解析JSON消息
            // - 更新数据库状态
            // - 发送邮件或短信通知等

            // 如果处理成功，该方法正常结束即可。
            // Starter 会自动向Broker返回CONSUME_SUCCESS。

        } catch (Exception e) {
            System.err.println("处理消息时发生业务异常: " + e.getMessage());
            e.printStackTrace();
            // 4. 如果抛出异常，Starter 会捕获并返回RECONSUME_LATER，消息将会重试
            // 重试策略和最大重试次数由RocketMQ和服务端配置决定:cite[2]
            throw new RuntimeException("业务处理失败，要求重试", e); // 抛出异常触发重试
        }

    }
}
*/
